package com.tarena.lbs.content.service;

import com.tarena.lbs.activity.api.pojo.ActivityDto;
import com.tarena.lbs.base.protocol.model.Result;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.basic.api.pojo.TagDto;
import com.tarena.lbs.basic.pojo.vo.TagVO;
import com.tarena.lbs.business.api.pojo.dto.StoreDTO;
import com.tarena.lbs.content.pojo.param.ArticleContentParam;
import com.tarena.lbs.content.pojo.query.ArticleQuery;
import com.tarena.lbs.content.pojo.vo.ArticleVO;

import java.util.List;
import java.util.Set;


public interface ArticleService {


    PageResult<ArticleVO> pageList(ArticleQuery query);
    /**
     * 获取文章详情
     */
    ArticleVO getById(Integer id);

    /**
     * 更新文章状态
     */
    Result<Void> updateArticleStatus(Integer id, Integer articleStatus, Integer onlineStatus);
    /**
     * 假删除文章
     */
    Result<Void> deleteArticle(Integer id);

    /**
     * 新增文章
     */
    Result<Void> addArticle(ArticleContentParam param);

    PageResult<ActivityDto> getActivityList(Integer pageNo, Integer pageSize, Integer status);

    List<StoreDTO> getStoresByBusinessId(Integer businessId);

    List<TagDto> getTagsByArticleId(Integer articleId);

    /**
     * 根据区域ID列表查询店铺
     */
    List<StoreDTO> getStoresByArea(List<Long> cityIdList, Integer level);
    
    /**
     * 检查店铺是否存在
     */
    Boolean checkStoreExists(Integer storeId);
    /**
     * 更新文章完整内容
     */
    Result<Void> updateArticle(ArticleContentParam param);
}